Галактионов В.В.

Представление математических формул в Web-страницах

Язык гипертекстовой разметки HTML до сих пор является практически единственной технологией для разработки WWW-приложений как основных средств представления данных в Интернет. Одним из первых результатов практического применения XML-технологий было появление языков для описания и представления нового типа данных, нетрадиционных для WWW: MathML (Mathematical Markup Language), CML (Chemical Markup Language), VML (Vector Markup Language), XFDL (Extensible Forms Description Language) и др. Проблемой для широкого внедрения таких языков в WWW было отсутствие достаточной XML-поддержки в стандартных Интернет-приложениях, главным образом в популярных Web-браузерах.

В данной заметке речь будет идти о MathML как средстве представления математических формул в Web-страницах.

Первый этап применения MathML – использование его в качестве промежуточного языка описания формул (например, в пакете для аналитических вычислений Mathematica ) и в экспериментальном браузере-редакторе Amaya.

Ситуация изменилась в 2002 году в связи с появлением новых версий браузеров MS Internet Explorer и Netscape 7.0, в которых реализована поддержка языка MathML.

В применении MathML надо различать две ситуации :

Просмотр MathML.

Для MS IE, начиная с версии 5.5, необходима инсталляция специальной программы Mathplayer , которую автоматически может устанавить сам браузер при обнаружении в загруженной HTML-странице блоков MathML (режим plugins), либо ее может вручную установить сам пользователь, скачав с сайта http://www.w3.org/Math/. Это не предствляет каких либо трудностей для пользователя средней квалификации. На этом же сайте можно найти всю информацию об MathML, включая описание самого языка.

Для браузера Netscape 7.0 ничего устанавливать не надо!

Создание Web-страниц с MathML.

Первый этаппрограммирование формул на MathML. Можно использовать несколько методов:

Пример применения MathML можно найти также в публикации [1] и на сайте Java Station (http://dbserv.jinr.ru/js) в разделе XML (That’s simple!).

Язык MathML построен по XML-технологии и для задания фрагментов формул используются свои теги.

Пример описания простой формулы:

<math>

<mi>x</mi>

<mo>+</mo>

<mn>3</mn>

</math>

Второй этап формирование Web-страницы, в которой надо поместить блок с описанием формулы. Здесь существуют несколько вариантов:

Далее на примерах будут показаны два способа.

  1. Первый способ:

Создание XML документа.

     <?xml version="1.0"?>
      <html xmlns="http://www.w3.org/1999/xhtml">
       <head>...</head>
       <body>
       <h1>Example</h1>
       ....
       <math xmlns="http://www.w3.org/1998/Math/MathML">
          <mi>x</mi><mo>+</mo><mn>3</mn>
       </math>
       </body>
       </html>

Параметры xmlns указывают область имен тегов для двух языков: XHTML и MathML соответственно.

Указание стилевых таблиц XSL.

Ссылка на стилевые таблицы задается во второй строке XML-документа:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"

href="http://www.w3.org/Math/XSL/mathml.xsl"?>

Это вариант задания ссылки на файл со стилевыми таблицами на W3C-сервере. Это не всегда бывает оправдано, да и могут быть проблемы при использовании браузера MS IE (надо внимательно настраивать систему безопасности браузера). Более приемлемый вариант для XSL – это размещение их в том же месте, где формируется исходная Web-страница. При этом ссылка на файл XSL будет выглядеть так:

    <?xml-stylesheet type="text/xsl" href="mathml.xsl"?>

Файл стилевых таблиц может быть переписан с W3C-сервера по их вышеуказанной ссылке (http://www.w3.org/Math/XSL/mathml.xsl ).

Необходимо иметь в виду, что из mathml.xsl есть ссылки на дополнительные XSL-таблицы: ctop.xsl, pmathmlcss.xsl и pmathml.xsl, которые скачиваются аналогичным образом.

Можно рекомендовать потенциальному пользователю скачать замечательный пакет testsuite.zip из (http://www.w3.org/Math/testsuite/), содержащем множество примеров построения математических конструкций на MathML, их демонстрации и набор XSL-таблиц.

Важное замечание: построенная таким образом Web-страница должна быть записана как файл с расширением имени .xml

2. Второй способ.

Это относится только к браузеру MS IE с установленной программой Mathplayer (см. выше). В этом случае в HTML-странице явно указывается обращение к Mathplayer.

Пример:

<HTML XMLNS:m="http://www.w3.org/1998/Math/MathML">

<HEAD>

<OBJECT

ID=MathPlayer

CLASSID="clsid:32F66A20-7614-11D4-BD11-00104BD3F987" >

</OBJECT>

<?IMPORT NAMESPACE="m" IMPLEMENTATION="#MathPlayer" ?>

</HEAD>

...

<p>Here is some math:

<m:math>

<m:msup>

<m:mi>x</m:mi>

<m:mn>2</m:mn>

</m:msup>

<m:mo>+</m:mo>

<m:mn>9</m:mn>

<m:mi>x</m:mi>

<m:mo>+</m:mo>

<m:mn>9</m:mn>

<m:mo>=</m:mo>

<m:mn>0</m:mn>

</m:math>

</p>

Полезные ссылки для изучения и применения MathML:

  1. Транслятор TtM ( TeX to MathML) http://hutchinson.belmont.ma.us/tth/mml/
  2. Он-лайн транслятор TtM http://hutchinson.belmont.ma.us/tth/mml/ttmform.html
  3. Демонстрация MathML http://www.mathmlcentral.com/Tools/MSP/FromMathML
  4. Демонстрационный пакет testsuite http://www.w3.org/Math/testsuite/overview.html
  5. Пакет MathType для MS Windows http://www.dessci.com/en/products/mathtype/win/

 

Литература.

1. Галактионов В.В. Расширяемый язык разметки XML (Extensible Mark-up Language): промышленный стандарт, определяющий архитектуру программных средств Интернет следующего поколения. Сообщение ОИЯИ, Р10-2000-44, Дубна, 2000.